<?php
namespace app\process;

use support\think\Db;


// 正式的业务数据处理
class MqttDataHandle{
    // 可初始化资源（如数据库连接、缓存等）
    public function __construct()
    {
        // 初始化业务依赖
    }

    public function handleData($topic, $content, $client){
        $data = json_decode($content, true);
        if(json_last_error() !== JSON_ERROR_NONE){  
            printMqttLog("json解析消息失败，使用原始数据: ");
            $data = $content;
        }else{
            printMqttLog("json解析消息成功，使用解析后的数据: ");
        }
        printMqttLog("收到消息 - 主题: {$topic}, 内容: ". json_encode($data));
        // @Test 保存消息到数据库，Db::execute() 默认使用了数据库连接池
        $result_flag = Db::execute("insert into mqtt_log (topic,cmd) values (?,?)", [ $topic, $content]);
        if(isFalse($result_flag)){
            printMqttLog("插入失败");
        }else{
            printMqttLog("插入成功");
            $client->publish('/wsq/device/V156156843F15X/', 'i store it in mysql ok');
        }
    }
}



